
// 默认本地 favicon 路径（用于 tenant logo）
export const DEFAULT_LOCAL_FAVICON = new URL('../assets/favicon.png', import.meta.url).href;

/**
 * 获取默认本地 favicon URL
 * @returns 默认本地 favicon 的完整 URL
 */
export function getDefaultLocalFaviconUrl(): string {
  return DEFAULT_LOCAL_FAVICON;
}

/**
 * 获取有效的图片 URL
 * @param customUrl 自定义图片 URL
 * @param defaultUrl 默认图片 URL
 * @returns 有效的图片 URL
 */
export function getValidImageUrl(customUrl?: string, defaultUrl: string=DEFAULT_LOCAL_FAVICON): string {
  if (customUrl && customUrl.trim()) {
    return customUrl;
  }
  return defaultUrl;
}

/**
 * 获取有效的 tenant logo URL（支持图片和链接两种方式）
 * @param tenantLogo tenant 的 logo 信息
 * @param getSignedUrl 获取签名 URL 的函数
 * @returns 有效的 logo URL
 */
export async function getValidTenantLogoUrl(
  tenantLogo?: string, 
  getSignedUrl?: (key: string) => Promise<any>
): Promise<string> {
  if (tenantLogo && tenantLogo.trim()) {
    // 如果提供了获取签名 URL 的函数，使用它
    if (getSignedUrl) {
      try {
        const signedUrl = await getSignedUrl(tenantLogo);
        return signedUrl as string;
      } catch (error) {
        console.warn('Failed to get signed URL for tenant logo:', error);
        return DEFAULT_LOCAL_FAVICON;
      }
    }
    // 否则直接返回原始 URL
    return tenantLogo;
  }
  return DEFAULT_LOCAL_FAVICON;
}

/**
 * 获取有效的 tenant logo URL（同步版本，用于不需要异步获取的场景）
 * @param tenantLogo tenant 的 logo 信息
 * @returns 有效的 logo URL
 */
export function getValidTenantLogoUrlSync(tenantLogo?: string): string {
  return getValidImageUrl(tenantLogo, DEFAULT_LOCAL_FAVICON);
} 
